export const getEnumManager = (enums, keyPropName = 'key', labelPropName = 'label') => {
    if (!Array.isArray(enums)) {
        throw new Error('您传入的不是一个数组')
    }
    const keys = [];
    const values = [];
    const keyMap = new Map();
    const valueMap = new Map();

    enums.forEach(item => {
        const key = item[keyPropName];
        const value = item[labelPropName];
        keys.push(key);
        values.push(value);
        keyMap.set(key, item);
        valueMap.set(value, key);
    });

    return {
        keys,
        values,
        enums,
        getLabelByKey(key) {
            return keyMap.get(key)?.[labelPropName];
        },
        getKeyByLabel(value) {
            return valueMap.get(value);
        },
        getObjByKey(key) {
            return keyMap.get(key);
        }
    }
}